﻿using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MarkDownFileSplitter.Meilisearch
{
    public partial class TaskManagerControl : UserControl
    {
        public TaskManagerControl()
        {
            InitializeComponent();

            // 初始化DataGridView列
            this.dataGridView_task.Columns.Add("uid", "任务Uid");
            this.dataGridView_task.Columns.Add("indexUid", "索引Uid");
            this.dataGridView_task.Columns.Add("status", "任务状态");
            this.dataGridView_task.Columns.Add("type", "任务类型");
            this.dataGridView_task.Columns.Add("details", "任务详情");
            this.dataGridView_task.Columns.Add("error", "错误信息");
            this.dataGridView_task.Columns.Add("startedAt", "开始时间");
            this.dataGridView_task.Columns.Add("finishedAt", "结束时间");
        }

        public async void RefreshGrid(string indexUid)
        {
            JArray tasks = await MeilisearchUploader.Instance.GetTasksByIndexUid(indexUid);
            // 清空现有数据
            this.dataGridView_task.Rows.Clear();

            // 遍历任务数组
            foreach (JObject task in tasks)
            {
                // 直接添加值数组到DataGridView
                object[] values = this.dataGridView_task.Columns.Cast<DataGridViewColumn>().Select(col => task[col.Name]?.ToString() ?? string.Empty).ToArray();
                this.dataGridView_task.Rows.Add(values);
            }

            // 自动调整列宽以适应内容
            this.dataGridView_task.AutoResizeColumns();
        }
    }
}
